/* **********************************************************
 * Copyright 2010 Dimitar Vangelovski
 *
 * This file is part of the Gens3 3D Engine.
 * 
 * The Gens3 3D Engine is free software; you can redistribute it and/or
 * modify it under the terms of version 2 of the GNU General Public
 * License as published by the Free Software Foundation.
 * 
 * The Gens3 3D Engine is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with the Gens3 3D Engine; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 * 02110-1301, USA
 * **********************************************************/


#pragma once

class CMeshFace
{	
public:

	CMeshFace();
	CMeshFace(const CMeshFace &other);
	CMeshFace(int vi1, int vi2, int vi3, int mmtlid, int msmooth, bool v01, bool v12, bool v20);
	~CMeshFace();

	void	SetVertexIndex(int iIndex, int iVertIndex) { m_nVertexIndex[iIndex] = iVertIndex; }
	void	SetMeshMtlID(int iMtlID) { m_nMeshMaterialID = iMtlID; }
	void	SetMeshSmooth(int iMeshSmooth) { m_nMeshSmoothing = iMeshSmooth; }
	void	SetVert01Conn(bool b01) { m_bVert01 = b01; }
	void	SetVert12Conn(bool b12) { m_bVert12 = b12; }
	void	SetVert20Conn(bool b20) { m_bVert20 = b20; }

	int     GetVertexIndex(int iIndex) const { return m_nVertexIndex[iIndex]; }
	int     GetMeshMtlID()	const { return m_nMeshMaterialID; }
	int     GetMeshSmooth() const { return m_nMeshSmoothing; }
	bool	IsVert01Conn()	const { return m_bVert01; }
	bool	IsVert12Conn()	const { return m_bVert12; }
	bool	IsVert20Conn()	const { return m_bVert20; }

private:
	int     m_nVertexIndex[3];
	int     m_nMeshMaterialID;
	int     m_nMeshSmoothing;
	bool	m_bVert01, m_bVert12, m_bVert20; // variables for checking which vertices are connected
};
